package io;

import java.io.*;

/**
 * 缓冲流:java.io.BufferedInputStream和BufferedOutputStream
 * 缓冲流是一对处理流(也称为高级流)，在流连接中的作用是保证读写数据的效率
 * 内部维护一个默认8192长的字节数组，总是以块读写形式进行来保证读写效率
 */
public class CopyDemo3 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("image.png");
        BufferedInputStream bis = new BufferedInputStream(fis,1024*10);

        FileOutputStream fos = new FileOutputStream("image_cp.png");
        BufferedOutputStream bos = new BufferedOutputStream(fos,1024*10);


        int d;
        long start = System.currentTimeMillis();
        while ((d = bis.read()) != -1) {
            bos.write(d);
        }
        long end = System.currentTimeMillis();

        System.out.println("复制完成, 耗时" + (end - start) + "毫秒");//复制完成, 耗时15毫秒
        bis.close();
        bos.close();
    }
}
